The present invention relates to data retention, and more specifically, this invention relates to increasing data recoverability in situations involving loss of a central inode list.
The continued increase of resilience for filesystems is an issue which is addressed on ongoing basis. Most filesystems initially start as a superblock which is located at an arbitrary address in a logical unit number (LUN), volume, logical disk, etc. From the superblock, a structure is built which ultimately becomes the filesystem. Files (e.g., unique groupings of data) stored on the filesystem are typically separated into a number of blocks which are spread across the persistent storage space of memory in order to achieve even distribution, e.g., for performance reasons. Thus, in order to describe each of these blocks and keep track of where they are located in the persistent storage space, a structure called a central inode list is used. This inode list identifies where the logical block addresses (LBAs) that constitute the various portions (e.g., blocks) of a given file are located in the memory space, and how these correlate to the corresponding locations in the persistent storage space. Accordingly, each file has an inode which is stored in one or more arrays depending on the architecture.
Losing the central inode list undesirably causes the entire filesystem to essentially become useless, as there is no way of identifying where each file begins, much less where each of the various blocks that belong to that file reside throughout the memory. In other words, without the central inode list, the information stored in memory essentially becomes an indecipherable string of logical “1s” and “0s”.
Accordingly, conventional implementations have attempted to maintain a redundant copy of the central inode list, e.g., such that it may be used in situations where the central inode list is lost. However, this conventional replication strategy has proven to be an impractical option, as the redundant copy of the central inode list consumes an undesirably large amount of storage space. Thus, conventional technology has been forced to choose between poor data retention rates and significant reductions to storage capacity.
It follows that a data storage scheme which is able to maintain data retention in the face of inode list failure without sacrificing storage capacity in doing so is desirable.